import axios from 'axios'
import app from '@/app'

// 创建基础配置
const http = axios.create({
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 60000
});

// 请求拦截器
http.interceptors.request.use(
  // 请求配置
  config => {
    // 追加 token
    config.headers['Authorization'] = 'Bearer ' + app.token()

    return config;
  }
);

// 响应拦截器
http.interceptors.response.use(
  // 正常响应
  response => {
    // 取出响应数据
    let data = response.data
    // 检测状态码
    if(data.error > 0) {
      // 如果未登陆
      if(data.error == 200) {
        // 退出登陆
        app.logout()
      }

      return Promise.reject(data)
    }

    return data;
  },
  () => {
    app.ui.message('error', 'error.network')
    return Promise.reject()
  }
);

export default http